package com.ruoyi.boss.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 发票详情对象 invoice_management
 * 
 * @author rui
 * @date 2025-08-18
 */
public class InvoiceManagementOne extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 发票ID */
    private Long invoiceId;

    /** 关联用户ID */
    @Excel(name = "关联用户ID")
    private Long userId;

    /** 发票状态 */
    @Excel(name = "发票状态")
    private Long invoiceStatus;

    /** 驳回原因 */
    @Excel(name = "驳回原因")
    private String rejectReason;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTitle;

    /** 纳税人识别号 */
    @Excel(name = "纳税人识别号")
    private String taxIdentifier;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private Long invoiceType;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNumber;

    /** 发票主体 */
    @Excel(name = "发票主体")
    private Long invoiceSubject;

    /** 发票内容 */
    @Excel(name = "发票内容")
    private String invoiceContent;

    /** 发票金额 */
    @Excel(name = "发票金额")
    private BigDecimal invoiceAmount;

    /** 注册地址 */
    @Excel(name = "注册地址")
    private String registeredAddress;

    /** 注册电话 */
    @Excel(name = "注册电话")
    private String registeredPhone;

    /** 开户银行 */
    @Excel(name = "开户银行")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String bankAccount;

    /** 收件人姓名 */
    @Excel(name = "收件人姓名")
    private String recipientName;

    /** 收件人电话 */
    @Excel(name = "收件人电话")
    private String recipientPhone;

    /** 收件地址 */
    @Excel(name = "收件地址")
    private String recipientAddress;

    /** 行程单接收邮箱 */
    @Excel(name = "行程单接收邮箱")
    private String recipientEmail;

    /** 快递公司 */
    @Excel(name = "快递公司")
    private String expressCompany;

    /** 快递单号 */
    @Excel(name = "快递单号")
    private String trackingNumber;

    /** 行程单接收邮箱 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行程单接收邮箱", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shippingTime;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applicationDate;

    /** 行程开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行程开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date travelStartDate;

    /** 行程结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行程结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date travelEndDate;

    /** 行程人手机号 */
    @Excel(name = "行程人手机号")
    private String travelerPhone;

    /** 行程数量 */
    @Excel(name = "行程数量")
    private Long travelCount;

    /** 行程合计金额 */
    @Excel(name = "行程合计金额")
    private BigDecimal travelAmount;

    /** 创建人 */
    private String createdBy;

    /** 创建时间 */
    private Date createdAt;

    /** 更新时间 */
    private Date updatedAt;

    public void setInvoiceId(Long invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public Long getInvoiceId() 
    {
        return invoiceId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setInvoiceStatus(Long invoiceStatus) 
    {
        this.invoiceStatus = invoiceStatus;
    }

    public Long getInvoiceStatus() 
    {
        return invoiceStatus;
    }

    public void setRejectReason(String rejectReason) 
    {
        this.rejectReason = rejectReason;
    }

    public String getRejectReason() 
    {
        return rejectReason;
    }

    public void setInvoiceTitle(String invoiceTitle) 
    {
        this.invoiceTitle = invoiceTitle;
    }

    public String getInvoiceTitle() 
    {
        return invoiceTitle;
    }

    public void setTaxIdentifier(String taxIdentifier) 
    {
        this.taxIdentifier = taxIdentifier;
    }

    public String getTaxIdentifier() 
    {
        return taxIdentifier;
    }

    public void setInvoiceType(Long invoiceType) 
    {
        this.invoiceType = invoiceType;
    }

    public Long getInvoiceType() 
    {
        return invoiceType;
    }

    public void setInvoiceNumber(String invoiceNumber) 
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber() 
    {
        return invoiceNumber;
    }

    public void setInvoiceSubject(Long invoiceSubject) 
    {
        this.invoiceSubject = invoiceSubject;
    }

    public Long getInvoiceSubject() 
    {
        return invoiceSubject;
    }

    public void setInvoiceContent(String invoiceContent) 
    {
        this.invoiceContent = invoiceContent;
    }

    public String getInvoiceContent() 
    {
        return invoiceContent;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) 
    {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getInvoiceAmount() 
    {
        return invoiceAmount;
    }

    public void setRegisteredAddress(String registeredAddress) 
    {
        this.registeredAddress = registeredAddress;
    }

    public String getRegisteredAddress() 
    {
        return registeredAddress;
    }

    public void setRegisteredPhone(String registeredPhone) 
    {
        this.registeredPhone = registeredPhone;
    }

    public String getRegisteredPhone() 
    {
        return registeredPhone;
    }

    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }

    public void setBankAccount(String bankAccount) 
    {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() 
    {
        return bankAccount;
    }

    public void setRecipientName(String recipientName) 
    {
        this.recipientName = recipientName;
    }

    public String getRecipientName() 
    {
        return recipientName;
    }

    public void setRecipientPhone(String recipientPhone) 
    {
        this.recipientPhone = recipientPhone;
    }

    public String getRecipientPhone() 
    {
        return recipientPhone;
    }

    public void setRecipientAddress(String recipientAddress) 
    {
        this.recipientAddress = recipientAddress;
    }

    public String getRecipientAddress() 
    {
        return recipientAddress;
    }

    public void setRecipientEmail(String recipientEmail) 
    {
        this.recipientEmail = recipientEmail;
    }

    public String getRecipientEmail() 
    {
        return recipientEmail;
    }

    public void setExpressCompany(String expressCompany) 
    {
        this.expressCompany = expressCompany;
    }

    public String getExpressCompany() 
    {
        return expressCompany;
    }

    public void setTrackingNumber(String trackingNumber) 
    {
        this.trackingNumber = trackingNumber;
    }

    public String getTrackingNumber() 
    {
        return trackingNumber;
    }

    public void setShippingTime(Date shippingTime) 
    {
        this.shippingTime = shippingTime;
    }

    public Date getShippingTime() 
    {
        return shippingTime;
    }

    public void setApplicationDate(Date applicationDate) 
    {
        this.applicationDate = applicationDate;
    }

    public Date getApplicationDate() 
    {
        return applicationDate;
    }

    public void setTravelStartDate(Date travelStartDate) 
    {
        this.travelStartDate = travelStartDate;
    }

    public Date getTravelStartDate() 
    {
        return travelStartDate;
    }

    public void setTravelEndDate(Date travelEndDate) 
    {
        this.travelEndDate = travelEndDate;
    }

    public Date getTravelEndDate() 
    {
        return travelEndDate;
    }

    public void setTravelerPhone(String travelerPhone) 
    {
        this.travelerPhone = travelerPhone;
    }

    public String getTravelerPhone() 
    {
        return travelerPhone;
    }

    public void setTravelCount(Long travelCount) 
    {
        this.travelCount = travelCount;
    }

    public Long getTravelCount() 
    {
        return travelCount;
    }

    public void setTravelAmount(BigDecimal travelAmount) 
    {
        this.travelAmount = travelAmount;
    }

    public BigDecimal getTravelAmount() 
    {
        return travelAmount;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("invoiceId", getInvoiceId())
            .append("userId", getUserId())
            .append("invoiceStatus", getInvoiceStatus())
            .append("rejectReason", getRejectReason())
            .append("invoiceTitle", getInvoiceTitle())
            .append("taxIdentifier", getTaxIdentifier())
            .append("invoiceType", getInvoiceType())
            .append("invoiceNumber", getInvoiceNumber())
            .append("invoiceSubject", getInvoiceSubject())
            .append("invoiceContent", getInvoiceContent())
            .append("invoiceAmount", getInvoiceAmount())
            .append("registeredAddress", getRegisteredAddress())
            .append("registeredPhone", getRegisteredPhone())
            .append("bankName", getBankName())
            .append("bankAccount", getBankAccount())
            .append("recipientName", getRecipientName())
            .append("recipientPhone", getRecipientPhone())
            .append("recipientAddress", getRecipientAddress())
            .append("recipientEmail", getRecipientEmail())
            .append("expressCompany", getExpressCompany())
            .append("trackingNumber", getTrackingNumber())
            .append("shippingTime", getShippingTime())
            .append("applicationDate", getApplicationDate())
            .append("travelStartDate", getTravelStartDate())
            .append("travelEndDate", getTravelEndDate())
            .append("travelerPhone", getTravelerPhone())
            .append("travelCount", getTravelCount())
            .append("travelAmount", getTravelAmount())
            .append("createdBy", getCreatedBy())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
